package com.jrx.anytxn.param.service.system;


import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.i18n.response.TxnPage;
import com.jrx.anytxn.param.dto.system.SystemParameterReq;
import com.jrx.anytxn.param.dto.system.SystemParameterRes;

/**
 * @author by yf
 * @Classname ISystemParameterService
 * @Description 系统参数service接口
 * @Date 2019/6/14 0014 上午 10:46
 */
public interface ISystemParameterService {

    /**
     * 根据租户ID分页查询系统参数信息
     *
     * @param pageNum  页码
     * @param pageSize 页大小
     * @param tenantId 租户ID
     * @return com.jrx.anytxn.common.data.TxnPage<com.jrx.anytxn.param.dto.system.SystemParameterRes>
     * @author fan.yang
     * date: 2019/10/11 0011 下午 15:07
     */
    TxnPage<SystemParameterRes> findAllSystemParameter(Integer pageNum, Integer pageSize, String tenantId) throws TxnException;

    /**
     * 根据系统代码ID和租户ID查询此信息
     *
     * @param paramCode 系统代码ID
     * @param tenantId  租户ID
     * @return com.jrx.anytxn.param.dto.system.SystemParameterRes
     * @author fan.yang
     * date: 2019/10/11 0011 下午 15:07
     */
    SystemParameterRes findByParamCode(String paramCode, String tenantId) throws TxnException;

    /**
     * 根据系统代码ID和租户ID删除此信息
     *
     * @param paramCode 系统代码ID
     * @param tenantId  租户ID
     * @return java.lang.Boolean
     * @author fan.yang
     * date: 2019/10/11 0011 下午 15:08
     */
    Boolean removeSystemParameter(String paramCode, String tenantId) throws TxnException;

    /**
     * 根据参数码和租户ID编辑系统参数信息
     *
     * @param systemParameterReq 系统参数请求参数
     * @return com.jrx.anytxn.param.dto.system.SystemParameterRes
     * @author fan.yang
     * date: 2019/10/11 0011 下午 15:08
     */
    SystemParameterRes modifySystemParameter(SystemParameterReq systemParameterReq) throws TxnException;

    /**
     * 根据参数码和租户ID编辑系统参数信息
     *
     * @param systemParameterReq 系统参数请求参数
     * @return com.jrx.anytxn.param.dto.system.SystemParameterRes
     * @author fan.yang
     * date: 2019/10/11 0011 下午 15:08
     */
    SystemParameterRes addSystemParameter(SystemParameterReq systemParameterReq) throws TxnException;
}
